using System;
using System.Collections.Generic;
using System.Text;

using Weazel.Microblaze.Elf;
using Weazel.Gezel.Model;

namespace Weazel.Microblaze.Simulator
{
    public class Configuration
    {
        private string elfFileName;
        public string ElfFileName
        {
            get { return elfFileName; }
            set { elfFileName = value; }
        }

        private ElfFile elfFile;
        public ElfFile ElfFile
        {
            get { return elfFile; }
            set { elfFile = value; }
        }


        private string gezelFileName;
        public string GezelFileName
        {
            get { return gezelFileName; }
            set { gezelFileName = value; }
        }

        private Model gezelModel;
        public Model GezelModel
        {
            get { return gezelModel; }
            set { gezelModel = value; }
        }

        private System.IO.TextWriter gezelOutputWriter = Console.Out;
        public System.IO.TextWriter GezelOutputWriter
        {
            get { return gezelOutputWriter; }
            set { gezelOutputWriter = value; }
        }

        private string instructionExecutionCountOutputFile;
        public string InstructionExecutionCountOutputFile
        {
            get { return instructionExecutionCountOutputFile; }
            set { instructionExecutionCountOutputFile = value; }
        }

        public bool InstructionExecutionCountEnabled
        {
            get { return instructionExecutionCountOutputFile != null; }
        }         
    }
}
